package 集合;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.lang.String;
public class main {
    /*
    使用场景：
    1.如果想要集合中的元素可以重复，选择的：Arraylist，基于数组
    2.如果集合中的元素可重复，且当前的增删操作明显多余查询，用linkedlist基于链表的
    3.如果想对集合中的元素去重：用hahsset集合，给予哈希表的
     */
    public static void main(String[] args) {

//        不可变的集合xxx.of形式，只能进行查询操作。
//        例如：List.of   Set.of   Map.of

        /*
             创建Map的不可变集合（map.of ）
             细节一：不能有重复的键值
             细节二：最多只有二十个参数，十个键值对对象
         */
        List<String> list = List.of("zjfhoiwe","Asda","asda","asdsa");
        System.out.println(list.get(0));
        System.out.println(list.get(1));
        System.out.println(list.get(2));
        System.out.println(list.get(3));
        for (String s : list) {
            System.out.print(s+" ");
        }
        list.add("sss");
        list.set(4,"aaa");
        System.out.println(list);//报错，无法添加，删除，修改

        System.out.println("===============================================");
        Set<String> String = Set.of("zjfhoiwe","Asda","asda","asdsa");
        
        
           /*
             创建Map的不可变集合（map.of ）
             细节一：不能有重复的键值
             细节二：最多只有二十个参数，十个键值对对象
         */
//        利用map数据获得一个不可变的集合，即转为可以存储多个键值对对象
        HashMap<String,String>hm=new HashMap<>();
//        获得所有的键值对对象
        Set<Map.Entry<String,String>> entries = hm.entrySet();
//        将entries变为一个数组，通过数组存储数据
//        entries.toArray可以将entries变为数组，在数组中写入
//        toArray[T  a]指定类型

        Map.Entry[] arr = entries.toArray(new Map.Entry[0]);

    }
}
